// pages/profile/index.ts
Page({
  async getUserNickName(ev) {
    // change 事件触发了两次, 第一次拿不到数据, 返回
    if (!ev.detail.value) return
    // 发请求更新昵称
    const { code } = await wx.http.put('/userInfo', { nickName: ev.detail.value })
    // 根据更新结果, 后续处理弹窗
    if (code !== 10000) return wx.utils.toast('更新用户昵称失败')
    wx.utils.toast('更新用户昵称成功')
  },
  getUserAvatar(ev) {
    // 得到用户选择的图片在机器上的临时地址
    console.log(ev.detail.avatarUrl);
    // 需要上传到公司后端服务器使用接口 wx.uploadFile
    const upTask = wx.uploadFile({
      //   // 这个不是htpp,所以要手动写基地址
      url: wx.http.baseURL + '/upload',
      filePath: ev.detail.avatarUrl,
      name: 'file',
      formData: {
        //     // 这里是跟后端约定的接口写法, 指名要储存头像不是普通图片
        type: 'avatar'
      },
      //   // 由于拦截器是处理http的,所以上传要自己手动处理token
      header: {
        Authorization: wx.getStorageSync('token')
      },
      success: (result) => {
        console.log(result);
        // 由于后端上传完毕数据是字符串, 所以要先转换再获取数据, 建议log出来进行数据获取比对
        const data = JSON.parse(result.data)
        this.setData({
          'userInfo.avatar': data.data.url
        })
      }
    });
  },
  // 获取用户信息
  async onShow() {

    const token = wx.getStorageSync('token');

    if (token) {
      const data = await wx.http.get('/userInfo')
      console.log(data.data);
      // 顺便将个人数据放入本地储存, 方便编辑页拿来渲染
      wx.setStorageSync('userInfo', data.data);

      this.setData({
        isLogin: true,
        userInfo: {
          nickName: data.data.nickName,
          avatar: data.data.avatar
        }
      })
    } else {
      this.setData({
        isLogin: false
      })
    }
    // this.data.isLogin = wx.wx.getStorageSync('token');
  }
})